#-*-coding:utf-8-*-
# 字符串操作
# 字符串切片操作 [start:end:step]
#[:] 表示从开头到末尾的整个字符串,相同的还可以是[start:];[:end];[start:end:1]
# [::-1]则能翻转整个字符串
originList = [1,2,3,4,5]
print originList
oList = originList[len(originList):0:-1]
tList = originList[::-1] # 打印出来5,4,3,2,1
print oList
print tList,

# 作用域
# globals() 查看全局作用域的方法
# locals() 查看局部作用域
# global 关键字可以在方法内修改全局变量
TEST_NUM = 100
def func():
	#TEST_NUM = 200 # 在此处并没有修改全局里面的TEST_NUM
	global  TEST_NUM
	TEST_NUM = 200  # 此时将修改全局变量
	print (globals())
	print (locals())
	print TEST_NUM
	return 2

func()

print TEST_NUM

# 函数名的本质：函数的内存地址
print (func)


# 闭包
# 闭：内部的方法
# 包：包含了内部方法对作用域中变量的引用
# __closure__ 中有cell元素则表示是闭包函数，否则表示不是
def closureFunc():
	name = "fans"
	def innner():
		print name
	print (innner.__closure__) #(<cell at 0x0408AD50: str object at 0x0408ABC0>,)
	return innner

f = closureFunc()
f()


